Method and apparatus for creating short video clips of important events

ABSTRACT

A method and apparatus for creating video clips is provided herein. During operation, a processing device will receive multiple video feeds from multiple video sources. In order to reduce the difficulty in producing multiple clips from the multiple video sources, thumbnails of the captured content is displayed and one-click selection of start and stop points of each clip is allowed. An operator can then pick an annotation (metadata) from events in the game or enter a new one and apply it to any or all of the video clips. Suggested content is then displayed based on the metadata of this annotation and can be bundled with the video clips by choosing from the list of related content. All of this content is then bundled together in the database.

FIELD OF THE INVENTION

The present invention relates generally to creating video clips, and inparticular, to a method and apparatus for creating video clips ofimportant events.

BACKGROUND OF THE INVENTION

In providing video content to fans of live events, it is necessary tocreate short video clips of important events in the game/event (e.g., agoal in a soccer game taken from multiple angles). These short videoclips are then made available to fans via posting to a web site, ortransferring them directly to a mobile device. A continuous video streamis too cumbersome for end users to navigate and results in a largeamount of data being sent over a network.

Currently it is quite difficult to create these sorts of multi-streamclips. Typically, multiple operators are needed, one assigned to editingand clipping each feed (video source) to create the desired clipsquickly, or one user has to go through each feed serially resulting in along delay before the clips are available. Besides the editing, clipsthen need to be annotated which can be a time-consuming process.Therefore a need exists for a method and apparatus for creating videoclips of important events that simplifies the creation of these clips.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of a system that can create video clips.

FIG. 2 illustrates a display of multiple video sources.

FIG. 3 is a block diagram of the computer of FIG. 1.

FIG. 4 is a flow chart detailing the capture of multiple video clips.

Skilled artisans will appreciate that elements in the figures areillustrated for simplicity and clarity and have not necessarily beendrawn to scale. For example, the dimensions and/or relative positioningof some of the elements in the figures may be exaggerated relative toother elements to help to improve understanding of various embodimentsof the present invention. Also, common but well-understood elements thatare useful or necessary in a commercially feasible embodiment are oftennot depicted in order to facilitate a less obstructed view of thesevarious embodiments of the present invention. It will further beappreciated that certain actions and/or steps may be described ordepicted in a particular order of occurrence while those skilled in theart will understand that such specificity with respect to sequence isnot actually required. It will also be understood that the terms andexpressions used herein have the ordinary technical meaning as isaccorded to such terms and expressions by persons skilled in thetechnical field as set forth above except where different specificmeanings have otherwise been set forth herein.

DETAILED DESCRIPTION OF THE DRAWINGS

In order to alleviate the above-mentioned need, a method and apparatusfor creating video clips is provided herein. During operation, aprocessing device will receive multiple video feeds from multiple videosources. In order to reduce the difficulty in producing multiple clipsfrom the multiple video sources, a screen of the captured content isdisplayed and one-click selection of start and stop points of each clipis allowed. An operator can then pick an annotation (metadata) fromevents in the game or enter a new one and apply it to any or all of thevideo clips. Suggested content is then displayed based on the metadataof this annotation and can be bundled with the video clips by choosingfrom the list of related content. All of this content is then bundledtogether in a database.

The above-described capture of video allows operators to quickly andeasily create video clips at a live event and make those clips availableto end users in seconds. Easy annotation of the resulting clips is alsoprovided in one step as well as providing related media for all of thecaptured content as a cohesive block.

The present invention encompasses a method comprising the steps ofproviding multiple videos to a user, receiving a command to create videoclips of a particular length of time from the multiple videos, andcapturing segments of the multiple videos for the particular length oftime. Multiple images of the captured segments are then displayed as anarray, where the array has an x-axis representing time, and a y-axisrepresenting video source, or vice versa. Finally video clips arecreated from the captured segments.

The present invention additionally encompasses a method comprisingreceiving video from multiple video cameras, providing the video to auser as a thumbnail for each of the multiple cameras, receiving acommand to create video clips of a particular length of time from themultiple video cameras, and capturing segments from the multiple videocameras for the particular length of time. Multiple thumbnails of thecaptured segments are then displayed as an array, where the array has anx-axis representing time, and a y-axis representing video source, orvice versa, Finally video clips from the captured segments are created.

The present invention additionally encompasses an apparatus comprising adisplay providing multiple videos to a user, an input device receiving acommand to create video clips of a particular length of time from themultiple videos, and a processor capturing segments of the multiplevideos for the particular length of time and instructing the display todisplay multiple images of the captured segments as an array. The arrayhas an x-axis representing time, and a y-axis representing video source,or vice versa.

Turning now to the drawings, where like numerals designate likecomponents, FIG. 1 is a block diagram showing system 100 that cancapture video clips from multiple video sources. The system of FIG. 1includes multiple video sources 101 (only one labeled), network 102, andcomputer system 106. Video sources 101 preferably comprise video camerasproviding a live event feed through network 102 to computer 106,however, in alternate embodiments of the present invention video sources101 may comprise other devices capable of providing video to computer106. For example, video sources 101 may comprise databases that providestored video content to computer 106. In yet another embodiment,multiple video sources (e.g. cameras) can be connected to one ormultiple video encoders (not shown) which are then connected directly tothe computer 106 or to the network 102.

Network 102 may comprise any type of network capable of transferringdata between video sources 101 and computer 106. If video sources 101and computer 106 are in close proximity, network 102 may comprise asimple coax cable connection between video sources 101 and computer 106.However, if video sources 101 and computer 106 are separated by a largedistance, network 102 may comprise any wired or wireless network capableof transmitting data. Such networks include, but are not limited to, anIP-based network, a wireless local-area network (WLAN) (e.g., IEEE802.11a/g), a Bluetooth, IEEE 802.11, or HyperLAN network, an IEEE802.15.3 or a IEEE 802.15.4 ad-hoc network, . . . , etc.

Computer system 106 preferably comprises a standard computer systemcapable of using any operating system, such as Microsoft Windows, UNIX,. . . , etc. As shown, computer system 106 comprises display device 103,such as a computer monitor, and input devices 104 and 105. In oneembodiment of the present invention, input devices 104 and 105 comprisea standard computer mouse and keyboard; however, in alternateembodiments of the present invention other input devices may be used toobtain user feedback such as direct touch of thumbnails and buttons.

During operation of system 100 video sources 101 provide video of, forexample, a sporting event to computer system 106. Display device 103will display a thumbnail (i.e., a small image) of each devices video inreal-time. So, for example, if video sources are currently capturing alive sporting event, display 103 displays live action in the game foreach camera 101 as a thumbnail. These video previews may also be shownon an external monitor.

As described above, in providing video content to fans of live events,it is necessary to create short video clips of important events (e.g., agoal in a soccer game taken from multiple angles). These short videoclips are then made available to fans via posting to a web site, ortransferring them directly to a mobile device. With prior-art systems itis quite difficult to create these sorts of multi-stream clips.

In order to address this issue, a user of computer system 106 will beprovided with an option of capturing a predetermined time period fromeach camera. In one embodiment of the present invention, the option ofcapturing the predetermined time period is given to the user as a seriesof soft buttons, each allowing the user to capture a different amount oftime. Thus, when an operator identifies a moment in an event to captureinto video clips, the operator can choose to grab the last m seconds ofthe event by pressing a designated start and/or end button in real time.In alternate embodiments, the user could manually choose to start andend recording of all clips or could choose a time period extending intothe past and future (e.g. a 30 second clip, starting 20 seconds ago).When a user has initiated a capture of an event, an array of thumbnailscovering the extent of the clips is created, with an x-axis representingtime, and a y-axis representing a camera, or vice versa. This isillustrated in FIG. 2.

As shown in FIG. 2, display device 103 displays soft buttons 206 forcapturing a predetermined amount (e.g., 10, 20, or 30 seconds) of video.Other buttons 207 are provided for capturing a varying amount of videofrom each camera. Display device 103 also displays a video feed 201(preferably a live video feed) for multiple video sources. Forsimplicity, only three video sources are shown in FIG. 2.

When a user wishes to capture multiple clips from multiple video sourcesof an event, the user depresses the desired soft key 206/207 to initiatecapture of the clips. In response, an array 200 is displayed. Array 200comprises thumbnail images 202 (only one labeled) of video from the clipand provides intermediate images from the clipping window for each videostream 203, 204, and 205. Thus, as shown in FIG. 2, rows 203, 204, and205 of the array comprise images from the clip, with each rowrepresenting a differing video source. In an alternate embodiment of thepresent invention, each column may represent a video source. In theembodiment where the start/stop buttons are utilized, this thumbnailarray may be generated dynamically and displayed incrementally while thecontent is still being recorded.

The user is then allowed to adjust the start and stop frames for eachstream. This may include expanding the clip interval beyond what wasoriginally requested. At this time the operator can also optionallyselect areas of the video to encode in slow motion by selecting anadditional set of start and stop thumbnails in the interface. Theoperator may also zoom into the content by drawing a rectangle over athumbnail for the portion of video they would like to zoom into. In analternate embodiment, the user may choose between pre-defined rectanglesizes optimized for mobile content delivery such as QCIF or QVGA. Theentire video can be zoomed, or just a defined time region. The resultsof these operations can optionally be previewed before committing tocreate the video files.

Optionally, the operator is able to annotate these video clips with anevent from the game. Game status can be imported into the system throughan external feed, through analysis of video content (e.g. to pull outgame time or recognize a player/action), or by manual entry. The set ofimported clips can be associated with relevant metadata (player, action,time in the game, score, etc.) and that metadata can be applied to allor a subset of the clips at once. This metadata is then stored in adatabase with a relational link to the file(s) that were created.

Finally, the content can optionally be bundled with other relatedcontent based on the metadata associated with the clips. For example,content from the same player can be suggested for combination with thecurrent clips. Relational links are established in a database betweenthese content items and they are made available to an end user device asrelated content.

FIG. 3 illustrates a possible configuration of a computing system 106 toact as an electronic device to execute the present invention. Computersystem 106 may include controller/processor 310, memory 320, display103, digital media processor 340, input/output device interface 104/105,and network interface 360, connected through bus 370. Computer system106 may implement any operating system, such as Windows or UNIX, forexample. Client and server software may be written in any programminglanguage, such as ABAP, C, C++, Java or Visual Basic, for example.

Controller/processor 310 may be any programmed processor known to one ofskill in the art. However, above-described techniques can also beimplemented on a general-purpose or a special purpose computer, aprogrammed microprocessor or microcontroller, peripheral integratedcircuit elements, an application-specific integrated circuit or otherintegrated circuits, hardware/electronic logic circuits, such as adiscrete element circuit, a programmable logic device, such as aprogrammable logic array, field programmable gate-array, or the like. Ingeneral, any device or devices capable of implementing the creation ofvideo clips as described herein can be used to implement the presentinvention.

Memory 320 may include volatile and nonvolatile data storage, includingone or more electrical, magnetic or optical memories such as a randomaccess memory (RAM), cache, hard drive, or other memory device. Memory320 may have a cache to speed access to specific data. Memory 320 mayalso be connected to a compact disc—read only memory (CD-ROM), digitalvideo disc—read only memory (DVD-ROM), DVD read write input, tape driveor other removable memory device that allows media content to bedirectly uploaded into the system.

Digital media processor 340 is a separate processor that may be used bythe system to more efficiently present digital media. Such digital mediaprocessors may include video cards, audio cards, or other separateprocessors that enhance the reproduction of digital media.

Input/Output interface 104/105 may be connected to one or more inputdevices that may include a keyboard, mouse, pen-operated touch screen ormonitor, voice-recognition device, or any other device that acceptsinput. Input/Output interface 104/105 may also be connected to one ormore output devices, such as a monitor, printer, disk drive, speakers,or any other device provided to output data.

Network interface 360 may be connected to a communication device, modem,network interface card, a transceiver, or any other device capable oftransmitting and receiving signals over network 102. Network interface360 may be used to transmit the media content to the selected mediapresentation device. Network interface 360 may also be used to downloadthe media content from a media source, such as a website or other mediasources. The components of computer system 106 may be connected via anelectrical bus 370, for example, or linked wirelessly.

Client software and databases may be accessed by thecontroller/processor 310 from memory 320, and may include, for example,components that embody the functionality of the present invention. Videoand video clips may be stored memory 320. Computer system 106 mayimplement any operating system, such as Windows or UNIX, for example.Client and server software may be written in any programming language,such as ABAP, C, C++, Java or Visual Basic, for example.

Although not required, the invention is described, at least in part, inthe general context of computer-executable instructions, such as programmodules, being executed by system 106, such as a general purposecomputer. Generally, program modules include routine programs, objects,components, data structures, etc. that perform particular tasks orimplement particular abstract data types. Moreover, those skilled in theart will appreciate that other embodiments of the invention may bepracticed in network computing environments with many types of computersystem configurations, including personal computers, hand-held devices,multi-processor systems, microprocessor-based or programmable consumerelectronics, network PCs, minicomputers, mainframe computers, and thelike.

Embodiments may also be practiced in distributed computing environmentswhere tasks are performed by local and remote processing devices thatare linked (either by hardwired links, wireless links, or by acombination thereof) through a communications network.

Embodiments within the scope of the present invention may also includecomputer-readable media for carrying or having computer-executableinstructions or data structures stored thereon. Such computer-readablemedia can be any available media that can be accessed by a generalpurpose or special purpose computer. By way of example, and notlimitation, such computer-readable media can comprise RAM, ROM, EEPROM,CD-ROM or other optical disk storage, magnetic disk storage or othermagnetic storage devices, or any other medium which can be used to carryor store desired program code means in the form of computer-executableinstructions or data structures. When information is transferred orprovided over a network or another communications connection (eitherhardwired, wireless, or combination thereof) to a computer, the computerproperly views the connection as a computer-readable medium. Thus, anysuch connection is properly termed a computer-readable medium.Combinations of the above should also be included within the scope ofthe computer-readable media.

Computer-executable instructions include, for example, instructions anddata which cause a general purpose computer, special purpose computer,or special purpose processing device to perform a certain function orgroup of functions. Computer-executable instructions also includeprogram modules that are executed by computers in stand-alone or networkenvironments. Generally, program modules include routines, programs,objects, components, and data structures, etc. that perform particulartasks or implement particular abstract data types. Computer-executableinstructions, associated data structures, and program modules representexamples of the program code means for executing steps of the methodsdisclosed herein. The particular sequence of such executableinstructions or associated data structures represents examples ofcorresponding acts for implementing the functions described in suchsteps.

Although the above description may contain specific details, they shouldnot be construed as limiting the claims in any way. Other configurationsof the described embodiments of the invention are part of the scope ofthis invention. For example, the principles of the invention may beapplied to each individual user where each user may individually deploysuch a system. This enables each user to utilize the benefits of theinvention even if any one of the large number of possible applicationsdo not need the functionality described herein. In other words, theremay be multiple instances of electronic devices each processing thecontent in various possible ways. It does not necessarily need to be onesystem used by all end users. Accordingly, the appended claims and theirlegal equivalents should only define the invention, rather than anyspecific examples given.

In the preferred embodiment, an operator using a large screen can reviewand clip a large number of feeds, possibly more than can be captured bya single computer. In this case, decoded video is captured and stored onremote devices. Real-time preview video streams are delivered from theseremote devices to the operator's system 106. When input devices 104/105receive an instruction to capture a video clip, commands are sent viathe network to the remote devices indicating start/stop, slow motionstart/stop and boundaries. The remote devices create the resulting videoclips based on these commands.

During operation of system 106, video streams from the multiple videosources enter network interface 360 and enter processor 340. Whenpresent, processor 340 serves to decode the video, for example viastandard MPEG decoding. Video may also be decoded by the general controlprocessor 310. The decoded video is stored in memory 320 and optionallyon disk (not shown). Processor 310 then instructs display 103 to displaya thumbnail of each video stream as shown in FIG. 2. When input devices104/105 receive an instruction to capture a video clip, processor 310captures an appropriate amount of video from each video source. Itshould be noted that all video captured from each source are of a sametime period, and comprise, for example, standard MPEG video. Thus, allclips captured from the video sources are, for example, from a same 30second time period.

At this point, processor 310 instructs display to display an array ofthumbnails representing each video clip. As discussed above, each row ofthe array comprises images from a particular video source, while eachcolumn of the array comprises images from a particular time. Thus,thumbnails from a first video source are displayed in a first row of thearray, while thumbnails from a second video source are displayed in asecond row of the array. A user is then allowed to click on a particularthumbnail to identify a starting point and an ending point for each clip(row). Thus, devices 104/105 receive information regarding thestarting/ending point for each clip and processor 310 then saves theappropriate clips to memory 320. More particularly, upon selecting thefinal intervals of recording, the system accesses stored video files andextracts the clip for the desired segment. This may involve stitchingtogether multiple saved files as is known in the art. The videos aretranscoded into the desired format(s) and are stored. As discussedabove, metadata may be obtained from input devices 104/105 andassociated with the group of clips.

FIG. 4 is a flow chart detailing the capture of multiple video clips.The logic flow begins at step 401 where multiple videos are received bycontroller 340. Processor 310 then provides the multiple videos to auser by displaying the multiple videos on display 103 (step 403). Asdiscussed above, the step of providing multiple videos to the usercomprises the step of providing the multiple videos as thumbnails. Atstep 405 processor 310 receives a command from an input device to createvideo clips of a particular length of time from the multiple videos.Processor 310 then captures segments of the multiple videos for theparticular length of time (step 407) and displays multiple images of thecaptured segments as an array (step 409). As discussed, the array has anx-axis representing time 209, and a y-axis representing video source, orvice versa. Preferably, the array comprises thumbnail images from thecaptured segments. Finally, at step 411, processor 310 creates the videoclips from the captured segments and stores them in memory 320.

As discussed above, commands received from the user may comprise mouseclicks on various images of the array. Processor 310 can associate themouse click with a starting or stopping frame for use in creating thevideo clips, a slow-motion frame, or a region of a frame for creatingthe video clips. Additionally, processor 310 can retrieve metadataregarding the video clips and store the video clips with the metadata.

While the invention has been particularly shown and described withreference to a particular embodiment, it will be understood by thoseskilled in the art that various changes in form and details may be madetherein without departing from the spirit and scope of the invention. Itis intended that such changes come within the scope of the followingclaims:

The invention claimed is:
 1. A method comprising: receiving live videostreams from multiple video sources; generating a graphical userinterface (GUI) providing a thumbnail representation of each of thevideo sources; receiving a command to create video clips of a particularlength of time from the multiple video sources, the command comprising asingle selection of one of a plurality of soft buttons, wherein theplurality of soft buttons comprises a plurality of differentpredetermined time periods; simultaneously capturing segments from eachof the multiple video streams for the particular length of time;displaying in the GUI associated with each video source multiplethumbnails of each of the captured segments as an array, wherein thearray has an x-axis representing time, and a y-axis representing videosource, or vice versa; receiving selection information from an inputdevice indicating the starting point image and the ending point image ofthe array of displayed multiple images for the captured segmentassociated with each video source; and creating video clips from thecaptured segments in the array, based on the selected starting andending points applied to each captured segment associated with eachvideo source.
 2. The method of claim 1 wherein the multiple videostreams are input from multiple video cameras.
 3. The method of claim 1wherein receiving selection information comprises: receiving a commandfrom a user comprising a mouse click on various thumbnails of the array,and associating the mouse click with a starting or stopping frame foruse in creating the video clips.
 4. The method of claim 1 furthercomprising the step of: receiving a command from a user comprising amouse click on various thumbnails of the array, and associating themouse click with a slow-motion frame.
 5. The method of claim 1 furthercomprising the step of: receiving a command from a user comprising amouse click on various thumbnails of the array, and associating themouse click with a region of a frame for creating the video clips. 6.The method of claim 1 further comprising the step of: receiving metadataregarding the captured segments.
 7. The method of claim 1 furthercomprising the step of: storing the video clips.
 8. An apparatuscomprising: a display providing multiple videos to a user; an inputdevice receiving a command to create video clips of a particular lengthof time from the multiple video streams; a controller operable to:control generating a graphical user interface (GUI) providing athumbnail representation of each of the video sources; receive a commandto create video clips of a particular length of time from the multiplevideo sources, the command comprising a single selection of one of aplurality of soft buttons, wherein the plurality of soft buttonscomprises a plurality of different predetermined time periods;simultaneously capturing segments from each of the multiple videostreams for the particular length of time; displaying in the GUIassociated with each video source multiple thumbnails of each of thecaptured segments as an array, wherein the array has an x-axisrepresenting time, and a y-axis representing video source, or viceversa; receiving selection information from the input device indicatingthe starting point image and the ending point image of the array ofdisplayed multiple images for the captured segment associated with eachvideo source; and creating video clips from the captured segments in thearray, based on the selected starting and ending points applied to eachcaptured segment associated with each video source.
 9. The apparatus ofclaim 8 further comprising: storage for storing the captured segments.